/*
 * @Author: pengtianrui 2276608413@qq.com
 * @Date: 2024-07-19 14:42:56
 * @LastEditors: Wang Shuo wangshuo@sgsimulation.com
 * @LastEditTime: 2024-08-30 11:10:26
 * @FilePath: \SGFEM\DataStructure\FEM\Element\include\CRODData.h
 * @Description: 杆单元的另一种定义方式，单元数据中包含截面属性
 * CRODData
 *
 */
#pragma once
#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Input/Element/ElementBase.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/// @brief 杆单元的另一种定义方式，单元数据中包含截面属性
struct DECLSPEC CRODData : public ElementBase
{
    SG::DataStructure::Common::Id m_pId      = 0;      ///< property's id
    SG::DataStructure::Common::Id m_g[2]     = { 0 };  ///< nodes' id
    SG::DataStructure::Common::Id m_domainId = 0;

    static ElementTypes GetType ()
    {
        return ElementTypes::ELETYPE_Link;
    };
};

/// @brief 判断两个CRODData是否相等
/// @param val1
/// @param val2
/// @return
DECLSPEC bool operator== (const CRODData& val1, const CRODData& val2);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE